package com.itheima.mapper;

import com.itheima.pojo.Student;
import com.itheima.pojo.StudentQueryParam;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;


@Mapper
public interface StudentMapper {



    List<Student> list(StudentQueryParam studentQueryParam);


    void deleteByIds(List<Integer> ids);

    @Select("select * from student where id=#{id}")
    Student getById(Integer id);

    @Options(useGeneratedKeys = true, keyColumn = "id", keyProperty = "id")
    @Insert("insert into student(name,no,gender,phone,id_card,is_college,address,degree,graduation_date,clazz_id,create_time,update_time)" +
            " values(#{name},#{no},#{gender},#{phone},#{idCard},#{isCollege},#{address},#{degree},#{graduationDate},#{clazzId},#{createTime},#{updateTime})")
    void save(Student student);


//    @Options(useGeneratedKeys = true, keyColumn = "id", keyProperty = "id")
//    @Update("update student set name=#{name},no=#{no},gender=#{gender},phone=#{phone},id_card=#{idCard},is_college=#{isCollege},address=#{address},degree=#{degree}" +
//            ",graduation_date=#{graduationDate},violation_count=#{violationCount},violation_score=#{violationScore},clazz_id=#{clazzId} ")
    void update(Student student);

    @Update("update student set violation_score=violation_score+#{score},violation_count= violation_count+1 where id=#{id}")
    void updateScore(Integer id, Short score);

    @MapKey("name")
    List<Map> degreeCountData();


}

